package FileAndRecurison.File;

import java.io.File;

/*
    路径：
        分为绝对路径和相对路径
            以盘符开始的路径为绝对路径
            相对于当前项目的根目录的为相对路径
      注意：
        1、路径不区分大小写
        2、路径中的文件名分隔符在windos下为\反斜杠，为转义字符，需要写为\\,代表一个\
*/
public class FileTest02 {
    public static void main(String[] args) {
/*
        file类的构造方法
*/
        show01();
        System.out.println("_________________________");
        show02("/Users/ivy/Documents/java/src/javase进阶", "a.txt");
        System.out.println("———————————————");
        show03();
    }

    private static void show03() {
    /*
      File(File parent, String child) 根据 parent 抽象路径名和 child 路径名字符串创建一个新 File 实例。
      参数:
        File parent：父路径
        String child ：子路径
        父路径和子路径可以单独书写，使用起来非常灵活，父路径和子路径都可以变化
      父路径是File类型，可以使用File的方法对路径进行一些操作，在使用路径创建对象
    */
        File file=new File("c://");
        File file1=new File(file,"a.txt");
        System.out.println("file1 is "+file1);
    }

    private static void show02(String parent, String child) {
        /*        File(String parent, String child)
        根据 parent 路径名字符串和 child 路径名字符串创建一个新 File 实例。
        参数:
        String parent：父路径
        String child ：子路径
            父路径和子路径可以单独书写，使用起来非常灵活，父路径和子路径都可以变化

        */
        File file = new File(parent, child);
        System.out.println(file);
    }

    /*
            file类的构造方法
            File(String pathname) 通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例。
            参数：
                1、String pathname：字符串的路径名称
                2、路径可以以文件结尾，也可以以文件夹结尾
                3、路径可以是相对路径，也可以是绝对路径
                4、路径可以是存在的，亦可以是不存在的
                5、创建file对象，只是把字符串路径封装为file对象，不考虑路径的真假情况


    */
    private static void show01() {
        File file1 = new File("/Users/ivy/Documents/java/src/javase进阶/a.txt");
        System.out.println(file1);
        File file2 = new File("/Users/ivy/Documents/java/src/javase进阶");
        System.out.println(file2);
        File file3 = new File("a.txt");
        //相对路径
        System.out.println(file3);
    }
}
